\section{Programme}

\subsection{L'environnement physique}

\subsubsection{La carte}

\begin{lstlisting}
typedef std::vector<std::vector<std::list<Case> > > > Carte;
\end{lstlisting}

La carte est complète pour x et y, mais sparse selon z.

\textit{Déclaration commune}

\subsubsection{Case}

Une case contient :
\begin{itemize}
\item Ses coordonnées 
\begin{itemize}
\item x
\item y
\item z
\end{itemize}
\item Le type d'environnement
\item L'occupation de la case
\item La force du vent ou des courant
\item La luminosité
\item Téléportation possible ou non et vers où.
\end{itemize}

\textit{Déclaration commune}

\subsection{Les Cellules}

\subsubsection{Composition de la cellule}
Une cellule contient :
\begin{itemize}
\item Ses coordonnées (ou la case à laquelle elle appartient?)
\item Ses variables d'état :
\begin{itemize}
\item Peur
\item Curiosité
\item Faim
\item Fatigue
\item Agressivité
\item Paresse
\item \ldots A compléter.
\end{itemize}
\item Ses capacités :
\begin{itemize}
\item Puissance de sa vision
\item Déclin de la vision avec la luminosité
\item Puissance d'attaque
\item Qualité de l'odorat
\end{itemize}
\item Sa structure interne\ref{structInterne}
\item Un arbre décrivant son code génétique \ref{ArbreGen} 
\end{itemize}


\textit{Déclaration commune}
\subsubsection{Structure interne}
\label{structInterne}

\begin{lstlisting}
enum Atome{
    A1,A2, ...;
}

enum Categorie{
    SucreRapide = 0,
    SucreLent = 1,
    Carapace = 2,
    Neutre = 3,
    Mortel = 4,
    SIZE_CAT = 5
\end{lstlisting}


\begin{lstlisting}
class Composition{
    float quantity;
    Atome A;
}
\end{lstlisting}

\begin{lstlisting}
class SructureInterne{
    std::vector<std::vector<Composition> > cat(SIZE_CAT)
}
\end{lstlisting}

\textit{Déclaration commune}

\subsection{Arbre Génétique}
\label{ArbreGen}
L'arbre nécessite :
\begin{itemize}
\item Un parseur texte <-> Arbre
\item Un interpréteur d'arbre
\item Un mutateur d'arbre
\item La liste de toutes les fonctions prédéfinies
\end{itemize}

\textit{Déclaration commune}

\subsection{Les parties pas communes :P}
\begin{itemize}
\item L'interface graphique
\item Le moteur physique
\item l'interpréteur d'arbre
\item le processus de mutation des arbres
\end{itemize}
